simstekfandomcom-20200214-history
Packingslips
Packing slips are data entries which register metadata for various assets in The Sims Online. They are located in various files in the packingslips folder of the game. Each of them is assumed to be used ingame except for outfits.xml, packingslips.dat, and packingslips.txt. Accessory table accessorytable.xml uses the AssetList element as follows: ... * key - The string identifier of this asset * assetID - A 64-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID followed by Type ID Animation table animtable.xml follows the AssetList format as described in Accessory table. Catalog catalog.xml uses the Catalog element as follows: ... * g''' - A 32-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID of this object * '''s - An integer specifying the catalog group for this object; according to tuning_hardcore.ini, valid identifiers are: ** -1: Does not appear in catalog ** 0: Build Mode - Doors ** 1: Build Mode - Windows ** 2: Build Mode - Stairs/elevators ** 3: Build Mode - Plants ** 4: Build Mode - Fireplaces ** 5: Build Mode - Pool ** 7: Build Mode - Walls/fences/columns ** 12: Buy Mode - Seating ** 13: Buy Mode - Surfaces ** 14: Buy Mode - Appliances (which includes plumbing in The Sims Online) ** 15: Buy Mode - Electronics ** 16: Buy Mode - Skill/job objects ** 17: Buy Mode - Decorative ** 18: Buy Mode - Miscellaneous objects ** 19: Buy Mode - Lighting ** 20: Buy Mode - Pets ** 21: Robot factory ** 22: Restaurant ** 23: Night club ** 29: Special (objects with an icon that don't go in the catalog) * p''' - The price of the object as it appears in the catalog; if s is equal to -1, this value is ignored and should be set to 0 * '''n - The string identifier of this object Object table objecttable.xml uses the ObjectInfoTable element as follows: ... * g''' - A 32-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID of this object * '''n - The string identifier of the group which this object belongs to * o''' - The string identifier of this object * '''m - Unknown at this time * f''' - Unknown at this time * '''i - Unknown at this time * l''' - A flag set to 0 or 1 specifying whether this object spans two floors (Note: There are elevators in TSO; these have l set to 1) Outfits outfits.xml uses the ReservedOutfits element as follows: 0x00000df70000000c 0x000000010000000d 0x000000020000000d * '''Censor - A 64-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID followed by Type ID of the default censor appearance * Default Body - A 64-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID followed by Type ID of the default body outfit * Default Head - A 64-bit big-endian integer in hexadecimal notation preceded by "0x" specifying the File ID followed by Type ID of the default head outfit This file is not used ingame, as the text string "outfits" (case-insensitive, ASCII or Unicode) does not appear in the game exe or any of its dlls. Packingslips.dat packingslips.dat is a FARv3 archive which contains a binary packing slip for every file in the developers' debug client, as it probably was when the game was still in development. It contains entries for a "testserver" folder, "testclient", "userdata2", "master_client", "slave_client", "hitlabui", and so on. This file is not used ingame, as "packingslips.dat" and "packingslips.txt" don't show up in the game exe or any of its dlls. Each entry follows this format, in big-endian byte order: * Major Version - A 2-byte unsigned integer specifying the major version of this binary packing slip; should be equal to 2 * Minor Version - A 2-byte unsigned integer specifying the major version of this binary packing slip; should be equal to 0 * File ID - A 4-byte unsigned integer specifying the File ID of this file * Type ID - A 4-byte unsigned integer specifying the Type ID of this file * Reserved - 8 bytes equal to 0 * Asset Type - A 4-byte unsigned integer specifying the clsid of the class used to handle this asset format; there may be a name provided for this clsid in the Pre-Alpha constants table. * Unknown - 9 bytes equal to 00 00 00 00 03 00 00 00 00 (in hex) * String length - A single byte specifying the string length of the file's original location * MD5 checksum - 16 bytes representing the MD5 checksum of this file * String length - A single byte specifying the string length of the file's original location * String - A non-null-terminated string specifying the original location of this file, before being packed into an archive * Entry Type ID - Should be equal to 8 for Asset * Entry Body Type - A 4-byte unsigned integer specifying the type of data that follows; should be 0xA96F6D42 for cAssetKey * File ID - A 4-byte unsigned integer specifying the File ID of this file * Type ID - A 4-byte unsigned integer specifying the Type ID of this file Packingslips.txt This file is merely a log produced by the "Mr. Shipper - Asset Compiler/Inventory Agent V 3.06" utility used inhouse by EA to generate packingslips.dat. Purchasable objects purchasables.xml uses the PriceTable element as follows: ... ... ... ... ... ... ... ... ... ... ... ... Textables textables.xml follows the AssetList format as described in Accessory table. Custom Content Although The Sims Online did make use of custom content until EA-Land, remakes have made their own compatible versions of the packing slips format or augmented versions to be more user friendly. FreeSO catalog_downloads.xml is a custom xml format based on catalog.xml used by FreeSO. It's used to manually side-load custom content into the client and server. NewSO nso_catalog.xml is an evolution of both catalog_downloads.xml and catalog.xml by NewSO. It was designed to be user friendly and easier to remember. FreeSO's catalog_downloads.xml was renamed to tso_catalog.xml for consistency and choice. Object Id Category (1 to 12) Price Name